<?php
/**
 * generator 生成器
 */

function getLines($file)
{
    $f = fopen($file, 'r');
    try {
        while ($line = fgets($f)) {
            yield $line;
        }
    } finally {
        fclose($f);
    }
}

// foreach (getLines("file.txt") as $n => $line) {
//     if ($n > 5) break;
//     echo $line;
// }


function gen_one_to_three()
{
    for ($i = 1; $i <= 3; $i++) {
        //注意变量$i的值在不同的yield之间是保持传递的。
        yield $i;
    }
}

$generator = gen_one_to_three();
foreach ($generator as $value) {
    echo "$value\n";
}


function query()
{
    // 查询数据库
    $res = [];

    while ($row = $res) {
        yield $row;
    }
}

$list = query();